package com.hualude.roadsign.service;

import com.hualude.roadsign.dto.DTRequestDto;
import com.hualude.roadsign.dto.DTResponseDto;
import com.hualude.roadsign.dto.SolarEnergyDto;

import java.util.List;

/**
 * Created by shao-yikun on 2017/7/11.
 */
public interface SolarEnergyManageService {
    /**
     * @Description: 太阳能产品DT展示
     * @Author: shao-yikun
     * @Date: 2017/7/11 下午10:51
     */
    public DTResponseDto getSolarEnergy4DT(DTRequestDto dtRequestDto,
                                           String actorIds,
                                           Integer orgId,
                                           Boolean audit,
                                           String startRoad,
                                           String endRoad,
                                           String roadName,
                                           Integer alarmBinding) throws Exception;

    /**
     * @Description: 太阳能产品APP展示
     * @Author: shao-yikun
     * @Date: 2017/7/12 下午2:18
     */
    public List<SolarEnergyDto> getSolarEnergy4APP(String actorIds,
                                                   Integer orgId,
                                                   Integer mCount,
                                                   Integer mSize,
                                                   String city,
                                                   String startRoad,
                                                   String endRoad,
                                                   String roadName,
                                                   String alarmType) throws Exception;

    /**
     * @Description: 添加太阳能产品
     * @Author: shao-yikun
     * @Date: 2017/7/12 下午2:20
     */
    public Integer addSolarEnergy(SolarEnergyDto solarEnergyDto) throws Exception;

    /**
     * @Description: 删除太阳能产品
     * @Author: shao-yikun
     * @Date: 2017/7/12 下午2:22
     */
    public Integer deleteSolarEnergy(String solarEnergyIds) throws Exception;

    /**
     * @Description: 修改太阳能产品
     * @Author: shao-yikun
     * @Date: 2017/7/12 下午2:23
     */
    public Integer updateSolarEnergy(SolarEnergyDto solarEnergyDto) throws Exception;

    /**
     * @Description: 审核太阳能产品
     * @Author: shao-yikun
     * @Date: 2017/7/20 下午6:48
     */
    public Integer auditSolarEnergy(String solarEnergyIds) throws Exception;

    /**
     * @Description: 获取路段By路名
     * @Author: xu_jiaHui
     * @Date: 2017/7/21 06:39
     */
    public List<String> getRoadByRoadName(String roadName, Integer actorId, Integer orgId) throws Exception;

    /**
     * @Description: 通过起始路段搜索截止路段
     * @Author: xu_jiaHui
     * @Date: 2017/7/21 06:39
     */
    public List<String> getSectionByRoadName(String roadName, Integer actorId, Integer orgId) throws Exception;

    /**
     * @Description: 通过id获取太阳能信息
     * @Author: xu_jiaHui
     * @Date: 2017/7/25 14:28
     */
    public SolarEnergyDto getSolarEnergyById(Integer solarEnergyId) throws Exception;

    /**
     * @Description: 根据OrgId, actorId获取城市名4App
     * @author xu_jiaHui
     * @date 2017/7/30 13:24
     */
    public List<String> getCity4SolarEnergy4App(Integer actorId, Integer orgId, Integer mCount, Integer mSize) throws Exception;

    /**
     * @Description: 根据OrgId, actorId,city获取路名4App
     * @author xu_jiaHui
     * @date 2017/7/30 13:25
     */
    public List<String> getRoad4SolarEnergy(Integer actorId, Integer orgId, String city, Integer mCount, Integer mSize) throws Exception;

    /**
     * @Description: 通过起始路段搜索截止路段4App
     * @author xu_jiaHui
     * @date 2017/8/2 15:31
     */
    public List<String> getSectionByRoadName4App(String roadName, String solarEnergyRoadName, String city, Integer actorId, Integer orgId, Integer mCount, Integer mSize) throws Exception;

    /**
     * @Description: 通过城市 路名 来获取起始路段
     * @author xu_jiaHui
     * @date 2017/8/3 13:30
     */
    public List<String> getStartRoad4App(String roadName, String city, Integer actorId, Integer orgId, Integer mCount, Integer mSize) throws Exception;

    /**
     * @Description: 获取太阳能地图信息用于展示4App
     * @author xu_jiaHui
     * @date 2017/8/4 15:02
     */
    public List<SolarEnergyDto> getSolarEnergy4Map4App(Integer orgId,
                                                       String actorIds,
                                                       double neLongitude,
                                                       double neLatitude,
                                                       double swLongitude,
                                                       double swLatitude) throws Exception;

    /**
     * @Description: 绑定报警器设备
     * @Author: WYX.
     * @Date: 2018/5/1 17:46.
     */
    public Integer bindingDevice(String deviceId, Integer solarEnergyId) throws Exception;

    /**
     * @Description: 解绑设备
     * @Author: WYX.
     * @Date: 2018/5/1 17:47.
     */
    public Integer unbindingDevice(String deviceId, Integer solarEnergyId)throws Exception;

    /**
     * @Description: 获取故障通知列表
     * @Author: WYX.
     * @Date: 2018/5/1 17:48.
     */
    public DTResponseDto showAlarmHistory(DTRequestDto dtRequestDto, String deviceId, Integer deviceType)throws Exception;

    public List<SolarEnergyDto> getDeviceInfo(Integer deviceId) throws Exception;


}
